package com.hospital.hospitalserver.mapper;

import com.hospital.hospitalserver.entity.PatientVisitDTO;
import com.hospital.hospitalserver.entity.PaymentMainDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 挂号缴费方法接口类
 * */
@Mapper
public interface RegistrationMapper {

    /**
     * 添加患者挂号就诊表基础信息
     */
    Integer addPatientVisit(PatientVisitDTO patientVisit);

    /**
     * 添加收费表主表信息
     */
    Integer addPaymentMain(PaymentMainDTO paymentMain);

    /**
     * 根据挂号编号查询就诊记录
     */
    PatientVisitDTO getVisitByAppointmentId(@Param("appointmentId") String appointmentId);

    /**
     * 更新收费状态
     */
    Integer updatePaymentStatus(PaymentMainDTO paymentMain);

    /**
     * 更新就诊状态
     */
    Integer updateVisitStatus(PatientVisitDTO patientVisit);

    /**
     * 根据就诊ID查询收费记录
     */
    PaymentMainDTO getPaymentByVisitId(@Param("visitId") Long visitId);

    /**
     * 根据支付单号查询收费记录
     */
    PaymentMainDTO getPaymentByPaymentNo(@Param("paymentNo") String paymentNo);

    /**
     * 检查挂号编号是否存在
     */
    Integer checkAppointmentIdExists(@Param("appointmentId") String appointmentId);

    /**
     * 检查支付单号是否存在
     */
    Integer checkPaymentNoExists(@Param("paymentNo") String paymentNo);
}
